您好,欢迎来到达州工业云! 平台首页 企业驾驶舱 帮助中心 企业登录 企业注册

HI,欢迎使用达州工业云平台!

账号必须大于2位

创新资源平台
服务平台首页>专利库>专利详情

计算机接口信息配置系统及方法

  • 申请号:CN201010157208.6 申请公布号: CN102236621B
  • 申请日: 2010-04-28 申请公布日: 2014-12-24
  • 申请(专利权)人: 专利代理机构: 深圳国鑫联合知识产权代理事务所(普通合伙)
  • 分类号:G06F13/16

专利介绍

一种计算机接口信息配置系统及方法,该方法包括步骤:在UEFI平台下创建一个SMI函数,并将该SMI函数存储在SMRAM存储单元中;产生一个SMI函数的入口地址并将该SMI函数的入口地址存储在SMI表中;当用户在操作系统下通过I/O端口写入SMI函数的入口地址时,在SMI表中查找到SMI函数的入口地址作为触发SMI函数的SMI句柄;通过该SMI句柄触发SMRAM存储单元内的SMI函数;通过该SMI函数调用UEFI存储单元内的运行服务函数;在UEFI平台下执行运行服务函数来读写存储在FLASH芯片里的计算机接口配置信息。实施本发明,能够方便地在UEFI平台下修改存储于FLASH芯片中的计算机接口配置信息。
1.一种计算机接口信息配置系统,安装并运行于计算机的操作系统下,该计算机包括SMRAM存储单元、UEFI存储单元以及FLASH芯片,其特征在于,所述的计算机接口信息配置系统包括:函数创建模块,用于在UEFI平台下创建一个SMI函数,并将该SMI函数存储在SMRAM存储单元中;函数调用模块,用于产生一个SMI函数的入口地址并将该SMI函数的入口地址存储在SMI表中,当用户在操作系统下通过I/O端口写入SMI函数的入口地址时,在SMI表中查找到SMI函数的入口地址作为触发SMI函数的SMI句柄,通过该SMI句柄触发SMRAM存储单元内的SMI函数,以及通过该SMI函数调用UEFI存储单元内的运行服务函数,其中,当计算机执行系统管理模式时,函数调用模块执行SMI句柄来调用SMRAM存储单元内的SMI函数;当SMI函数执行调用操作完成后,操作系统执行恢复指令使计算机执行先前的系统管理模式;信息配置模块,用于在UEFI平台下执行运行服务函数来读写存储在FLASH芯片里的计算机接口配置信息。
2.如权利要求1所述的计算机接口信息配置系统,其特征在于,所述的UEFI平台是一种可扩展固件接口,其定义了计算机操作系统和计算机硬件接口之间的接口标准。
3.如权利要求1所述的计算机接口信息配置系统,其特征在于,所述的运行服务函数包括GetVariable函数,GetNextVariableName函数、SetVariable函数以及QueryVariableInfo函数。
4.一种计算机接口信息配置方法,利用UEFI平台对计算机的I/O接口配置信息进行修改,该计算机包括SMRAM存储单元、UEFI存储单元以及FLASH芯片,其特征在于,该方法包括步骤:在UEFI平台下创建一个SMI函数,并将该SMI函数存储在SMRAM存储单元中;产生一个SMI函数的入口地址并将该SMI函数的入口地址存储在SMI表中;当用户在操作系统下通过I/O端口写入SMI函数的入口地址时,在SMI表中查找到SMI函数的入口地址作为触发SMI函数的SMI句柄;通过该SMI句柄触发SMRAM存储单元内的SMI函数,当计算机执行系统管理模式时,执行SMI句柄来调用SMRAM存储单元内的SMI函数;通过该SMI函数调用UEFI存储单元内的运行服务函数,当SMI函数执行调用操作完成后,操作系统执行恢复指令使计算机执行先前的系统管理模式;在UEFI平台下执行运行服务函数来读写存储在FLASH芯片里的计算机接口配置信息。
5.如权利要求4所述的计算机接口信息配置方法,其特征在于,所述的UEFI平台是一种可扩展固件接口,其定义了计算机操作系统和计算机硬件接口之间的接口标准。
6.如权利要求4所述的计算机接口信息配置方法,其特征在于,所述的运行服务函数包括GetVariable函数,GetNextVariableName函数、SetVariable函数以及QueryVariableInfo函数。技术领域
本发明涉及一种计算机接口信息配置修改系统及方法,特别是关于一种在UEFI(Unifiedxa0Extensiblexa0Firmwarexa0Interface,可扩展固件接口)平台下更新计算机接口信息配置的系统及方法。
背景技术
在BIOS(Basicxa0Inputxa0Outputxa0System,基本输入输出系统)平台上,计算机接口信息配置信息,例如启动设备列表和顺序等,基本上是存储在南桥上的CMOS(Complementaryxa0metalxa0Oxidexa0Semiconductor,互补金属氧化物半导体)芯片里。在CMOS芯片里的信息除了在开机时候可进行配置修改外,也可以在操作系统(OS)下通过驱动I/O端口(例如70/71端口)对I/O接口配置信息进行修改。随着计算机技术的发展,传统BIOS已经逐渐地被UEFI(Unifiedxa0Extensiblexa0Firmwarexa0Interface,可扩展固件接口)所取代,UEFI是一种Intel公司最新推出的计算机操作系统和平台固件之间的接口标准。由于UEFI与BIOS设计结构上的变化,通过驱动I/O端口来修改接口配置信息已经是行不通了。原因在于UEFI平台下的接口配置信息,硬件配置信息存储在CMOS芯片里,而启动设备列表和配置顺序等软件配置信息则是存储在FLASH芯片里。通常,通过南桥上的SPI(SerialPeripheralxa0Interface,串行外设接口)控制器对FLASH进行读写来修改FLASH芯片里的接口配置信息,然而这种修改方式存在如下缺点:一是不同南桥芯片针对SPI控制器的控制寄存器不太一样,不具有通用性;二是如果计算机运行于保护模式下,例如计算机接口配置信息经过加密或者压缩等操作,那么对用户很难通过这种修改方式对I/O接口配置信息进行修改。发明信息鉴于以上信息,有必要提供一种计算机接口信息配置系统及方法,能够在UEFI平台下直接修改FLASH芯片中的计算机接口配置信息。所述的计算机接口信息配置系统安装并运行于计算机的操作系统下,该计算机包括SMRAM存储单元、UEFI存储单元以及FLASH芯片。所述的计算机接口信息配置系统包括函数创建模块、函数调用模块以及信息配置模块。所述的函数创建模块用于在UEFI平台下创建一个SMI函数,并将该SMI函数存储在SMRAM存储单元中。所述的函数调用模块用于产生一个SMI函数的入口地址并将该SMI函数的入口地址存储在SMI表中,当用户在操作系统下通过I/O端口写入SMI函数的入口地址时,在SMI表中查找到SMI函数的入口地址作为触发SMI函数的SMI句柄,通过该SMI句柄触发SMRAM存储单元内的SMI函数,以及通过该SMI函数调用UEFI存储单元内的运行服务函数。所述的信息配置模块用于在UEFI平台下执行运行服务函数来读写存储在FLASH芯片里的计算机接口配置信息。所述的计算机接口信息配置方法能够在UEFI平台下对计算机的I/O接口配置信息进行修改。该方法包括步骤:在UEFI平台下创建一个SMI函数,并将该SMI函数存储在SMRAM存储单元中;产生一个SMI函数的入口地址并将该SMI函数的入口地址存储在SMI表中;当用户在操作系统下通过I/O端口写入SMI函数的入口地址时,在SMI表中查找到SMI函数的入口地址作为触发SMI函数的SMI句柄;通过该SMI句柄触发SMRAM存储单元内的SMI函数;通过该SMI函数调用UEFI存储单元内的运行服务函数;在UEFI平台下执行运行服务函数来读写存储在FLASH芯片里的计算机接口配置信息。相较于现有技术,本发明所述的计算机接口信息配置系统及方法,当计算机运行在保护模式下操作系统无法直接调用到运行服务(RuntimeServices)函数的执行进程时,用户在操作系统下既可以通过驱动I/O更改部分存储于CMOS芯片中的接口配置信息,也可以更改存储于FLASH芯片中的接口配置信息,从而达到在UEFI平台下修改计算机接口配置信息之目的。
附图说明
图1是本发明计算机接口信息配置系统较佳实施例的架构图。图2是在UEFI平台下Runtimexa0Services函数的示意图。图3是本发明计算机接口信息配置方法较佳实施例的流程图。主要元件符号说明操作系统xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa010计算机接口信息配置系统xa0xa011函数创建模块xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0110函数调用模块xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0111信息配置模块xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0112SMRAM存储单元xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa020UEFI存储单元xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa030FLASH芯片xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa040CMOS芯片xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa050
具体实施方式
如图1所示,是本发明计算机接口信息配置系统11较佳实施例的架构图。在本实施例中,所述的计算机接口信息配置系统11(以下简称信息配置系统11)安装并运行于计算机的操作系统下,用于在UEFI(UnifiedExtensiblexa0Firmwarexa0Interface,可扩展固件接口)平台下对计算机的I/O接口配置信息进行修改。该计算机包括操作系统(OS)10、SMRAM存储单元20、UEFI存储单元30、FLASH芯片40以及CMOS芯片50。所述的UEFI平台是一种Intel公司最新推出的计算机操作系统和计算机硬件接口之间的接口标准。在UEFI平台下,计算机硬件设备的配置信息一般存储在CMOS芯片50中,而启动设备列表和配置顺序等软件配置信息则存储在FLASH芯片40中。所述的SMRAM存储单元20用于存储可供操作系统10调用的SMI(Systemxa0Managementxa0Interrupt,系统管理中断)函数,其用于处理不同的计算机接口配置信息。所述的UEFI存储单元30用于存储多个可供SMI函数调用的运行服务(Runtimexa0Services)函数。在UEFI平台下,其包含启动服务(Bootxa0Services)函数和Runtimexa0Services函数,当启动计算机运行操作系统10后,Runtimexa0Services函数会一直等待操作系统10调用直到计算机关机。所述的信息配置系统11包括函数创建模块110、函数调用模块111、以及信息配置模块112。所述的函数创建模块110用于利用UEFI平台创建一个SMI函数,并将该SMI函数存储在SMRAM存储单元20中。本实施例中,当计算机运行于SMM(Systemxa0Managementxa0Mode,系统管理模式)下需要处理中断事件(例如,用户需要配置计算机I/O端口信息)时,函数创建模块110则在UEFI平台下创建相应的SMI函数来处理中断事件。所述的函数调用模块111用于产生一个SMI函数的入口地址(Index),例如Index值为“0xde”,并将该SMI函数的入口地址存储在SMI表中,以及当用户在OS下通过I/O端口写入Index值触发SMI函数时通过SMI表查找到SMI函数的入口地址作为触发SMI函数的SMI句柄(Handler)。所述的SMI句柄即为SMRAM存储单元20内的SMI函数的入口地址,例如将首地址SMbase+8000H作为SMI函数的入口地址。所述的函数调用模块111还用于通过SMI句柄触发存储在SMRAM存储单元20内的SMI函数,以及通过该SMI函数调用UEFI存储单元30内的Runtimexa0Services函数(运行服务函数)。在本实施例中,函数调用模块111通过这个SMI句柄将计算机系统后台的Runtimexa0Services函数的接口给遍历出来,并通过如下触发操作outpd(0xb2,0xde)来触发SMI函数,其中“0xb2”为Intel处理器平台上规定的SMI端口号,“0xde”为用户通过操作系统(OS)10写入的Index值。当有SMI被触发时,函数调用模块111切换到SMRAM存储单元20中调用SMI函数。当计算机执行SMM模式时,函数调用模块111执行SMI句柄代码来完成相应的操作。当SMI函数执行调用操作后,操作系统10会执行恢复指令(RSM),从而使计算机系统回到先前切入的SMM模式下。所述的信息配置模块112用于执行Runtimexa0Services函数来读写FLASH芯片40的计算机接口配置信息信息,从而能够在UEFI平台下修改存储在FLASH芯片40的计算机接口配置信息。参考图2所示,RuntimeServices函数一般包括GetVariable函数,GetNextVariableName函数、SetVariable函数、以及QueryVariableInfo函数。因此,用户可以利用不同的Runtimexa0Services函数的接口参数来修改FLASH芯片40内的计算机接口配置信息。如图3所示,是本发明计算机接口信息配置方法较佳实施例的流程图。步骤S31,函数创建模块110利用UEFI平台创建一个SMI函数,并将该SMI函数存储在SMRAM存储单元20中。本实施例中,以计算机系统运行于SMM模式下为例,当计算机系统需要处理中断事件(例如,用户需要配置计算机I/O端口信息)时,函数创建模块110在UEFI平台下创建相应的SMI函数来处理中断事件。步骤S32,函数调用模块111产生一个SMI函数的入口地址(Index),例如Index值为“0xde”,并将该SMI函数的入口地址存储在SMI表中。步骤S33,当用户在OS下通过I/O端口写入Index值触发SMI函数时,函数调用模块111通过SMI表查找到SMI函数的入口地址作为触发SMI函数的SMI句柄(Handler)。该SMI句柄即为SMRAM存储单元20内的SMI函数的入口地址,例如将首地址SMbase+8000H作为SMI函数的入口地址。步骤S34,函数调用模块111通过该SMI句柄触发存储在SMRAM存储单元20内的SMI函数。在本实施例中,函数调用模块111通过这个SMI句柄将计算机系统后台的Runtimexa0Services函数接口给遍历出来,并通过如下触发操作outpd(0xb2,0xde)来触发SMI函数,其中“0xb2”为Intel处理器平台上规定的SMI端口号,“0xde”为用户通过操作系统(OS)10写入的Index值。步骤S35,函数调用模块111通过SMI函数调用UEFI存储单元30内的Runtimexa0Services函数。当有SMI被触发时,函数调用模块111切换到SMRAM存储单元20中调用SMI函数。当计算机执行SMM模式下,函数调用模块111执行SMI句柄代码来完成相应的操作。当SMI函数执行调用操作后,操作系统10会执行恢复指令(RSM),从而使计算机系统回到先前切入的SMM模式下。步骤S36,信息配置模块112执行Runtimexa0Services函数来读写FLASH芯片40的接口配置信息信息,从而能够在UEFI平台下修改存储在FLASH芯片40的计算机接口配置信息。此外,当操作系统10运行在保护模式下,操作系统10无法直接调用到Runtimexa0Services函数的执行进程时,用户在操作系统10下既可以通过驱动I/O更改部分存在于CMOS芯片50中的接口配置信息,也可以通过所述的计算机接口信息配置系统及方法更改存在于FLASH芯片40中的接口配置信息,从而达到在UEFI平台下完全修改计算机接口配置信息的目的。